package com.zdxlz.mongodbDemo.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.FieldType;
import org.springframework.data.mongodb.core.mapping.MongoId;

@Data
// 若添加 @Document ，则 save 到 comment collection//可以省略，如果省略，则默认使用类名小写映射集合
@Document(collection = "user_info")
//复合索引
// @CompoundIndex( def = "{'userid': 1, 'nickname': -1}")
@NoArgsConstructor
@Accessors(chain = true)
@AllArgsConstructor
public class User {
    /**
     * 主键_id
     */
    //主键标识，该属性的值会自动对应mongodb的主键字段"_id"，如果该属性名就叫“id”,则该注解可以省略，否则必须写
    @MongoId(targetType = FieldType.STRING)
    private String createTime;
    /**
     * 用户名
     */
    //添加了一个单字段的索引
    @Indexed
    private String userName;
    /**
     * 昵称
     */
    //该属性对应mongodb的字段的名字，如果一致，则无需该注解
    // @Field("nickName")
    private String nickName;
    /**
     * 年龄
     */
    private Integer age;
    /**
     * 性别
     */
    private String gender;
    /**
     * 地址
     */
    private String address;
    /**
     * 手机号
     */
    private String phoneNumber;
}
